JBoss Community Archive (Read Only)

RHQ 4.9

RHQ integration with CloudForms

Purpose

Describe how RHQ will integrate with CloudForms via the Aeolus project. The first goal is to get a JON agent installed onto an Operating System in the cloud and registered with a standalone JON Server (not in the cloud). Full JON Server support in the cloud will be addressed at a later time. The OpenShift (formerly Makara) initiative which focuses on PAAS will not be discussed here.

Content likely to change

The Aeolus project is still under heavy development. The information below should be considered of draft quality and is likely to change with newer releases.

Aeolus

Aeolus is an umbrella project representing RedHat's initiative to be a 'one stop shop' for private/public/hybrid Cloud control in the IAAS space. With broad goals of integrating with existing infrastructure while providing a unified Cloud Management interface to existing cloud providers like Amazon AWS, Rackspace and RHEVM to name a few, the Aeolus project attempts to organize cloud usage for infrastructure management.

See here for component and team listings for Aeolus. While the interface is primarily written in Ruby, an Aeolus release is a collection of various RPM versions currently only available for Fedora 14 and RHEL 6.1. While RHQ typically has a dependency on a single JVM and includes N relevant java library components, a version of the Aeolus release is instead composed of various rpm components modifiable by yum/rpm update. This is mentioned here to clarify that unlike RHQ, dependent libraries are not bundled and static under an installation directory, but instead component versions are dependent upon the latest rpms currently installed. See related BZ about problematic version inconsistencies.

See CloudForms architectural overview documents, CloudForms Administration Guide and CloudForms Installation Guide for more details and supporting documentation on vision and direction for the Aeolus project.

Requirements for Setup

  1. Cloud Provider account. Ex. (Amazon AWS)

  2. Fedora 14 or RHEL 6.1 environment. Fedora 14 in a kvm virtual machine works well too if you're already on Fedora 15.

Installing Aeolus

Where to get the bits:http://www.aeolusproject.org/get_it.html. The instructions for the 'Stable Release' work as described, but that version no longer reflects the current product direction very well. You should install the 'Stable Release' version to get a better understanding of how the pieces work together and to be comfortable mapping those concepts to be next release/development releases. The instructions below attempt to follow the 'Development Testing' repositories instructions and to call out changes/deviations from the same when necessary.

Until BZ 717476 has been addressed, you will need to do yum upadate python-boto to be able to push images to cloud providers if you are not using python-boto-1.9b-5.fc14 or better.

Configuring Aeolus

You should follow the original docs/setup/usage but use the following steps defined here as a guide as to where things have changed since those instructions were defined.

Notes/Troubleshooting tips:

  • UI has changed since screen shots if you are using development or testing versions. Image Factory no longer available in UI.

    • When switching from stable to development versions you should remove previous repository and start fresh.

  • Clean start

    • Reset Aeolus
      sudo yum remove aeolus-configure;
      sudo yum remove aeolus-all;
      sudo yum install aeolus-all;
    • aeolus-cleanup : use cleanup to reset database contents and service details.

    • aeolus-configure: reinitialize components and restart services.

      • Without cleanup and configure steps above, the UI display may display mangled contents between updates.

      • If you get errors in the configure/cleanup phases, there may be hung processes preventing correct cleanup. Use 'ps aux | grep aeolus' to locate duplicate/problematic processes for elimination.

'Step 4. Create a Fedora 14 Template' is no longer valid.

  • You will need to drop back down to the command line terminal to complete these steps:

    • You will be building the cloud image with Aeolus which will later be pushed to Cloud provider.

    • 1) The 'hwp' attribute in the <assembly...> definition must match one of 'Administer>Hardware Profiles' available. A profile like 'hwp1' should already be available.

    • 2) The 'id' attribute of the <image..> element must match an existing image.

    • 3) Copy the deployable.xml document into /var/www/html/deployables directory and verify that http://localhost/deployables/deployable.xml is accessible and displays expected contents. (assumes http server started and accessible.)

    • 4) With conductor ui, use Administration>Suggested Deployables to add the complete http url to the deployable.xml.

    • 5) Push the image(sample ids: insert valid image ids):

      • NOTE: If you experience issues pushing an image with your amazon credentials, use the following script from your conductor box to verify that your credentials are correct.

        • Verifying credentials work outside of Aeolus
          #!/usr/bin/python
          import boto.ec2
          # Connect to EC2 region we want
          ec2region = boto.ec2.get_region("us-east-1", 
          aws_access_key_id='<insert access key only between quotes>', 
          aws_secret_access_key='<insert secret key only between quotes>')
          print ec2region.name
          ------- Should print the following without errors on successful run -----------------
          us-east-1 
      • NOTE: If you still experience credentials difficulties, after verifying with previous step and double checking contents of your provider.xml content, then it's possible that your current user does not have correct permissions to view the ssh certificate used during automated authentication with the cloud servers. Use 'ls -al /etc/oz/id_rsa-icicle-gen' to confirm that user has correct visibility. The permissions should be 400 for current user. Ssh will also not accept visibility that is too open.

        2011-07-08 11:32:15,125 DEBUG imagefactory.builders.BaseBuilder.FedoraBuilder pid(2108) Message: Waiting for EC2 ssh access: 270/300
        2011-07-08 11:32:25,470 DEBUG imagefactory.builders.BaseBuilder.FedoraBuilder pid(2108) Message: Waiting for EC2 ssh access: 280/300
        2011-07-08 11:32:35,860 DEBUG imagefactory.builders.BaseBuilder.FedoraBuilder pid(2108) Message: Waiting for EC2 ssh access: 290/300
        2011-07-08 11:32:46,235 DEBUG imagefactory.builders.BaseBuilder.FedoraBuilder pid(2108) Message: Stopping EC2 instance and deleting temp security group
        2011-07-08 11:32:48,014 DEBUG imagefactory.builders.BaseBuilder.FedoraBuilder pid(2108) Message: Exception caught in ImageFactory
        2011-07-08 11:32:48,017 DEBUG imagefactory.builders.BaseBuilder.FedoraBuilder pid(2108) Message: Traceback (most recent call last):
          File "/usr/lib/python2.7/site-packages/imagefactory/builders/FedoraBuilder.py", line 485, in push_image
            self.push_image_snapshot(target_image_id, provider, credentials)
          File "/usr/lib/python2.7/site-packages/imagefactory/builders/FedoraBuilder.py", line 497, in push_image_snapshot
            self.push_image_snapshot_ec2(target_image_id, provider, credentials)
          File "/usr/lib/python2.7/site-packages/imagefactory/builders/FedoraBuilder.py", line 729, in push_image_snapshot_ec2
            raise ImageFactoryException("Unable to gain ssh access after 300 seconds - aborting")
        ImageFactoryException: Unable to gain ssh access after 300 seconds - aborting
  • aeolus-image push --provider ec2-us-east-1 --id 1ecc08d8-0fff-466b-88cb-17fd81a318ad

  • Use 'tail /var/log/imagefactory.log' to monitor success of this process.

    • I prefer to use the following command to get immediate logging without having to tail the log as in previous step: 'imgfac.py' --debug --image 1ecc08d8-0fff-466b-88cb-17fd81a318ad --provider ec2-us-east-1 --credentials (insert full path to xml provider details)/cloud/provider_accounts.xml

5)Start the image. You will either use

  • Conductor (currently broken) OR

  • Use the Cloud provider i.e. Amazon AWS UI at this point to start up your instance.

Credential headaches again:

  • NOTE: to verify that the image is correct you need to setup your SSH client to use the certificates. See instructions here: http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/.

    • Pay special attention to these instructions if you plan on using putty to ssh into started cloud instances.

    • As you are attempting to connect in via ssh, if you are challenged for a password at login then you do NOT have the certificates setup correctly. With correct client certification credentials the only thing you will be asked for is the user account that you would like to be be logged in as (ex. root).

Useful links:

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-13 08:05:39 UTC, last content change 2013-09-18 19:40:47 UTC.